package com.project.server;

import java.io.*;

/**
 * 处理响应信息的响应对象
 */
public class Response {
    private OutputStream out;

    public Response(OutputStream out){
        //完成写入流初始化
        this.out = out;

    }

    /**
     * 向客户端发送文本数据
     * @param info 发送字符串
     */
    public void sendMessage(String info){

        try {
            out.write(info.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送文件数据到客户端
     * @param filePath 文件路径
     */
    public void sendFile(String filePath){
        File file = new File(filePath);
        //判断文件是否存在，不存在就跳出方法，避免报文件未找到异常
        if (file.exists() == false){
            return;
        }

        InputStream in = null;
        try {
            //创建文件读取流
            in = new FileInputStream(filePath);

            byte[] byteArray = new byte[1024];
            int len = 0;
            //长度还有就继续读
            while ((len = in.read(byteArray)) != -1){
                //读一次就写一次进客户端。读了几个就写几个  off从第0个开始，到最后一个。不写垃圾数据
                out.write(byteArray,0,len);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            try {
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
